package com.shop.operator.controller;

import java.util.List;
import java.util.Map;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.shop.domain.PageResult;
import com.shop.domain.Result;
import com.shop.model.TypeTemplate;
import com.shop.operator.service.TypeTemplateService;

/**
 * 运营商模块管理
 * @author Administrator
 *
 */

@RequestMapping("/typeTemplate")
@Controller
public class TemplateAction {
	
	@Resource(name="TypeTemplateService")
	private TypeTemplateService typeTemplateService;
	
	@ResponseBody
	@RequestMapping("/findAll")
	public PageResult findAll(Integer page,Integer size)throws Exception{
		
		//拿到分页结果对象
		PageResult pageResult= typeTemplateService.findAll(page,size);
		
		return pageResult;
	}
	
	
	
	@RequestMapping("/redirect")
	public String redirect()throws Exception{
		
		
		return "operator/admin/type_template";
	}
	
	
	//删除操作。
	@ResponseBody
	@RequestMapping("/delete")
	public Result delete(Long[]ids) throws Exception {
		
		
		
			if(typeTemplateService.delete(ids)){
				
			return new Result(true,"删除成功");
			}else{
				
				return new Result(false,"删除失败");
			}
		
	}
	
	/**
	 * 拿到select2 品牌数据   没有在brandController里面写
	 * @return   list<map>
	 * @throws Exception
	 */
	@RequestMapping("/selectOptionList")
	@ResponseBody
	public List<Map> selectOptionList()throws Exception{
		
		//拿到=[{id:..,text:...},{}]=类型的数据
		List<Map> list=typeTemplateService.selectOptionList();
		
		return list;
	}
	
	
	/**
	 * 拿到select2  规格数据  没有在speccontroller里面写
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/selectOptionListWithSpec")
	@ResponseBody
	public List<Map> selectOptionListWithSpec()throws Exception{
		List<Map> lists=typeTemplateService.selectOptionListWithSpec();
		
		return lists;
	}
	
	/**
	 * 添加的方法  网页上有number string 对象   数组 类型
	 * @requestBody也需要与之对应
	 * @requstBody还是@responseBody都是以json字符串进行交互的 而不是json对象，
	 * 
	 * @return
	 * @throws Exceotion
	 */
	@RequestMapping("/add")
	@ResponseBody
	//将json字符串转为实体类      用fastJson  因为前台传来的是数组里套对象  需要将他当成字符串看   或者就是将实体类
	//字段改成 对象数组与之对应
	public Result add(@RequestBody TypeTemplate typeTemplate)throws Exception{
		
		/*System.out.println("-----------------------");*/
		System.out.println("typeTemplate="+typeTemplate);
		if(typeTemplateService.add(typeTemplate)){
			
			return new Result(true,"添加成功");
			
		}
		else{
			
			return new Result(false,"添加失败");
		}
	

	}
	
	/**
	 * 查找一个模板
	 * @param id
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/findOne")
	@ResponseBody
	public TypeTemplate findOne(Integer id) throws Exception{
		
		return typeTemplateService.findOne(id);
		
	}
	
	/**
	 * 更新模板
	 * @param template
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/update")
	@ResponseBody
	public Result update(@RequestBody TypeTemplate template)throws Exception{
		
		if(typeTemplateService.update(template)){
			
			return new Result(true,"更新成功");
		}else{
			return new Result(false,"更新失败");
		}
		
	}
	
	
	/**
	 * 通过name查询  模糊查询
	 * @param typeTemplate
	 * @param page
	 * @param size
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/findByLike")
	@ResponseBody
	public PageResult findByLike(@RequestBody TypeTemplate typeTemplate,Integer page,Integer size)throws Exception{
		
		//System.out.println("typeTemplate="+typeTemplate);
		return typeTemplateService.findByLike(typeTemplate, page, size);
		
	}

}
